#!/bin/bash
# 获取当前脚本所在的绝对路径
curdir=$(cd "$(dirname "$0")"; pwd -P)
# 加载配置文件
source "$curdir"/openvpn.env

touch /etc/openvpn/server.conf
sudo cat <<EOF > /etc/openvpn/server.conf
port 1194                                    # 端口
proto udp                                    # 协议
dev tun                                      # 采用路由隧道模式
ca /opt/easy-rsa/pki/ca.crt                  # ca证书的位置
cert /opt/easy-rsa/pki/issued/server.crt     # 服务端公钥的位置
key /opt/easy-rsa/pki/private/server.key     # 服务端私钥的位置
dh /opt/easy-rsa/pki/dh.pem                  # 证书校验算法  
server $OPENVPN_SUBNET $OPENVPN_NETMASK      # 给客户端分配的地址池
# push "route 172.16.1.0 255.255.255.0"      # 允许客户端访问的内网网段
ifconfig-pool-persist ipp.txt                # 地址池记录文件位置，未来让openvpn客户端固定ip地址使用的
keepalive 10 120                             # 存活时间，10秒ping一次，120秒如果未收到响应则视为短线
max-clients 4                              	 # 最多允许4个客户端连接
status openvpn-status.log                    # 日志位置，记录openvpn状态
log /var/log/openvpn.log                     # openvpn日志记录位置
verb 3                                       # openvpn版本
$OPENVVPN_CLIENT_CONN_ENABLE
persist-key                                  # 通过keepalive检测超时后，重新启动VPN，不重新读取
persist-tun                                  # 检测超时后，重新启动VPN，一直保持tun是linkup的，否则网络会先linkdown然后再linkup
duplicate-cn                                 # 客户端密钥（证书和私钥）是否可以重复
# comp-lzo                                   # 启动lzo数据压缩格式
# compress lz4 # 推荐使用LZ4压缩 # 但是一般还是不建议压缩，容易受到漏洞攻击
EOF

# 服务启动
systemctl restart openvpn@server
